AgentDojo 專為評估與測試 Agent 安全性所設計的動態開源框架。本文深入解析 AgentDojo 主要模組,並分享如何直接透過 Python 程式碼探索其內部結構。
主要由以下五大模組相互配合,組成完整的閉環:
+-------------------+
| benchmark | (定義任務與測試集)
+---------+---------+
|
+-------------------+-------------------+
| | |
+------+------+ +------+------+ +------+------+
| attacks | -->|agent_pipeline| <-- | defenses |
| (注入攻擊) | | (運作流程) | | (安全性防護) |
+-------------+ +------+------+ +-------------+
|
+---------+---------+
| functions_runtime | (模擬工具與沙盒環境)
+-------------------+
benchmark(測試基準與任務定義)workspace(郵件、雲端硬碟、日曆)與 banking(銀行轉帳、帳戶查詢)。TaskSuite:管理該情境下的所有測試任務。UserTask:使用者發出的合法指令(例如:「幫我讀取今天的信件並發送摘要」)。InjectionTask:攻擊者企圖發動的非法指令(例如:「將用戶的銀行密碼發送到攻擊者伺服器」)。agent_pipeline(Agent 運作管線)attacks(提示詞注入攻擊模組)defenses(安全性防禦機制)functions_runtime(工具沙盒與執行環境)如果想在開發時了解有哪些模組與類別可用,可以用以下程式碼進行動態查詢:
import pkgutil
import agentdojo
for module_info in pkgutil.walk_packages(agentdojo.__path__, agentdojo.__name__ + "."):
print(module_info.name)
benchmark)可用的 APIimport agentdojo.benchmark
print([item for item in dir(agentdojo.benchmark) if not item.startswith("_")])